package com.swanclouds.api.managers;

import com.swanclouds.common.RestService;
import com.swanclouds.model.common.ActionResponse;
import com.swanclouds.model.common.redfish.CollectionResource;
import com.swanclouds.redfish.common.redfish.LogOverWritePolicy;
import com.swanclouds.redfish.managers.domain.LogModel;
import com.swanclouds.redfish.managers.domain.LogServicesListModel;

/**
 * Author: 李文强
 * Title: LogService
 * Description: TODO
 */
public interface LogService extends RestService {

    /**
     * 查询日志服务集合信息
     * @return CollectionResource
     */
    CollectionResource get();

    /**
     *  服务器根据EntriesId查询日志
     *  @param entriesId /EntriesId路径后的EntriesId
     * @return LogServicesListModel
     */
    LogServicesListModel entries(String entriesId);

    /**
     * 查询指定的日志类型
     * @param dataId 日志类型如SSH
     * @return LogModel
     */
    LogModel getLogServicesMembers(String dataId);

    /**
     * 查询服务器的日志资源集合实例信息
     * @param entriesId 日志id
     * @param dataId 日志类型如SSH
     * @return LogServicesListModel
     */
    LogServicesListModel entriesId(String dataId,String entriesId);

    /**
     * 服务器清除指定日志信息资源
     * @param memberId 指定的日志资源ID
     * @return ActionResponse
     */
    ActionResponse clearLog(String memberId);

    /**
     * 服务器设置日志存储策略 华为不可用没有接口 宁畅可用
     * @param logOverWritePolicy 日志的存储策略，包括：NeverOverWrites  WrapsWhenFull
     * @return LogOverWritePolicy
     */
    LogOverWritePolicy setOverWritePolicy(LogOverWritePolicy.OverWritePolicy logOverWritePolicy);

    //下载服务器的日志资源信息
    ActionResponse download(String memberId);

}
